A network application, such as a Web application, is typically accessible to users via a client application. The client may be implemented as part of, or alongside, the Web application. Alternately, the developer of the Web application can publish, or make available, an application programming interface (API) so that other developers can create clients for the Web application. Some clients are standardized to particular formats, such as Really Simple Syndication (RSS) or ATOM Syndication (ATOM).
There are two components of an API: an abstraction component and an implementation component. The abstraction component is essentially a document (or series of documents) that describes to a developer how to write source code to interface with the Web application. The implementation component is executable code that acts as the interface between clients written to the API and the Web application itself.